home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / seven.asc < prev    next >
Text File  |  1985-06-03  |  8KB  |  286 lines

  1. 0 D$="SHCD"
  2. 20 DIM C(52),P(8),S(5),V(8)
  3. 30 DIM A$(26),D$(4),S$(32)
  4. 32 TEXT : CALL -936
  5. 35 POKE 50,255
  6. 40 PRINT : PRINT "*** SEVEN ***"
  7. 50 PRINT : PRINT "DO YOU NEED THE RULES (Y OR N)?"
  8. 60 GOSUB 3000
  9. 70 IF K= ASC("N") THEN 280
  10. 72 GOSUB 5000
  11. 75 PRINT 
  12. 80 PRINT "  'SEVEN' IS PRIMARILY THE EUROPEAN     VERSION OF 'CRAZY EIGHTS', MODIFIED     WITH A FEW MORE INTERESTING RULES."
  13. 85 PRINT 
  14. 90 PRINT "  BASICALLY, THE OBJECT OF THE GAME     IS TO GET RID OF ALL YOUR CARDS BY      FOLLOWING SUIT OR RANK OF THE 'SHOW'"
  15. 100 PRINT "CARD.  PLAY CONTINUES LIKEWISE UNTIL    A QUEEN ('Q') IS PLAYED.  THEN ITS      OWNER MAY NAME THE SUIT OF HIS CHOICE."
  16. 105 PRINT 
  17. 110 PRINT "  THE PLAY OF AN ACE ('A') CAUSES THE   NEXT PLAYER TO BE SKIPPED, AND IF YOU   CANNOT PLAY, YOU MUST DRAW ONE CARD."
  18. 115 PRINT 
  19. 120 PRINT "  IF A SEVEN ('7') IS PLAYED, EACH      CONSECUTIVE PLAYER MUST PLAY A '7'      UNTIL SOMEONE DOESN'T HAVE ONE."
  20. 130 PRINT "THIS PLAYER MUST THEN DRAW 3 CARDS      FOR EVERY SEVEN PLAYED BEFORE HIM."
  21. 140 PRINT : PRINT "  HIT ANY KEY TO CONTINUE...";
  22. 145 GOSUB 3000: GOSUB 5000
  23. 150 PRINT "EACH HAND IS DEALT SIX CARDS.": PRINT : PRINT "LOW SCORE WINS, WITH ...": PRINT 
  24. 160 TAB 10: PRINT "7 ... 10 POINTS": TAB 10: PRINT "Q ...  5 POINTS"
  25. 165 TAB 10: PRINT "A ...  3 POINTS": TAB 6: PRINT "OTHER ...  1 POINT"
  26. 170 PRINT : PRINT "ENTER YOUR PLAYS IN THE FORM '2D' FOR   2-DIAMONDS, OR '10H' FOR 10-HEARTS."
  27. 180 PRINT "(NUMBER, 'A', 'J', 'Q', OR 'K' FOLLOWED BY THE FIRST LETTER OF THE SUIT NAME)": PRINT 
  28. 190 PRINT "IF YOU CAN'T FOLLOW SUIT OR MATCH THE   RANK OF THE LAST CARD PLAYED (AND YOU"
  29. 200 PRINT "DON'T HAVE A QUEEN), TYPE 'D' TO DRAW   A CARD. ALSO, WATCH OUT FOR THOSE 7'S!"
  30. 210 PRINT : PRINT "YOU'LL BE PLAYING HAND 1, AND I'LL PLAY THE OTHER HANDS AGAINST YOU. GOOD LUCK!"
  31. 280 FOR P1=1 TO 8
  32. 290 V(P1)=0
  33. 300 NEXT P1
  34. 310 PRINT 
  35. 320 PRINT "HOW MANY PLAYERS (FROM 2 TO 8)?";
  36. 330 GOSUB 3000
  37. 335 N=K- ASC("0")
  38. 340 IF N<2 OR N>8 THEN 330
  39. 345 POKE 50,63
  40. 350 A=0:F7=0:HNDNO=HNDNO+1
  41. 355 CALL -936
  42. 360 R=52
  43. 365 TAB 3: PRINT "< SHUFFLING >"
  44. 380 A$=" A 2 3 4 5 6 7 8 910 J Q K"
  45. 390 S$="SPADES  HEARTS  CLUBS   DIAMONDS"
  46. 400 D=1
  47. 410 FOR I=1 TO 52:C(I)=0: NEXT I
  48. 420 FOR P1=1 TO 8
  49. 430 P(P1)=6
  50. 440 NEXT P1
  51. 450 VTAB 24
  52. 460 FOR L0=1 TO N
  53. 470 FOR L1=1 TO 6
  54. 480 GOSUB 2200
  55. 490 C((Y-1)*4+X)=L0
  56. 520 NEXT L1,L0
  57. 530 GOSUB 4000
  58. 540 GOSUB 2200
  59. 550 IF Y=1 THEN A=1
  60. 570 IF Y=7 THEN F7=1
  61. 590 PRINT "START ---> ";
  62. 600 GOSUB 2050
  63. 610 S1=X
  64. 620 S2=Y
  65. 630 REM  BEGIN
  66. 640 GOSUB 4000
  67. 650 D=D+1
  68. 660 Q1=0:Q2=0
  69. 670 IF D>N THEN D=D-N
  70. 680 IF S2#1 OR A=0 THEN 730
  71. 700 PRINT "HAND # ";D;" :    SKIPPED "
  72. 710 A=0
  73. 720 GOTO 640
  74. 730 IF D=1 THEN 1260
  75. 740 X=1
  76. 750 Y=1
  77. 760 IF C((Y-1)*4+X)#D THEN 880
  78. 770 IF S2#7 THEN 830
  79. 780 IF Y=7 THEN 810
  80. 790 IF F7=0 THEN 830
  81. 800 GOTO 880
  82. 810 F7=F7+1
  83. 820 GOTO 960
  84. 830 IF X=S1 OR Y=S2 THEN 930
  85. 850 IF Y#12 THEN 880
  86. 860 Q1=X
  87. 870 Q2=Y
  88. 880 Y=Y+1: IF Y<=13 THEN 760
  89. 890 X=X+1: IF X<=4 THEN 750
  90. 900 X=Q1
  91. 910 Y=Q2
  92. 920 GOTO 970
  93. 930 REM  PLAY
  94. 940 IF Y=7 THEN F7=1
  95. 960 Q1=0:Q2=0
  96. 970 PRINT "HAND # ";D;" : ";
  97. 980 IF X#0 THEN 1040
  98. 990 PRINT "   DRAWS ";
  99. 1000 GOSUB 2080
  100. 1005 IF M>9 THEN 1020
  101. 1010 PRINT M;" "
  102. 1015 GOTO 630
  103. 1020 PRINT M
  104. 1030 GOTO 630
  105. 1040 GOSUB 2050
  106. 1050 C((Y-1)*4+X)=-1
  107. 1060 IF Q1#0 AND D#1 THEN 1080
  108. 1070 IF Y#12 OR D=1 THEN 1210
  109. 1080 FOR I=1 TO 5:S(I)=0: NEXT I
  110. 1090 FOR X1=1 TO 4
  111. 1100 FOR Y1=1 TO 13
  112. 1110 IF C((Y1-1)*4+X1)=D THEN S(X1)=S(X1)+1
  113. 1130 NEXT Y1,X1
  114. 1150 FOR X1=1 TO 4
  115. 1160 IF S(X1)<=S(5) THEN 1190
  116. 1170 S(5)=S(X1)
  117. 1180 X=X1
  118. 1190 NEXT X1
  119. 1200 PRINT "     CALL:    ";S$(X*8-7,X*8)
  120. 1210 P(D)=P(D)-1
  121. 1220 IF P(D)=0 THEN 2380
  122. 1230 IF Y#1 THEN 610
  123. 1240 A=1
  124. 1250 GOTO 610
  125. 1260 REM  INPUT
  126. 1270 PRINT "YOUR PLAY: ";
  127. 1280 GOSUB 3000
  128. 1320 IF K# ASC("D") THEN 1360
  129. 1330 TAB 12: PRINT "   DRAWS ";
  130. 1340 GOSUB 2080: PRINT M;: IF M<10 THEN PRINT " ";: PRINT 
  131. 1350 GOTO 630
  132. 1360 IF K# ASC("1") THEN 1400
  133. 1370 TAB 12
  134. 1380 PRINT "1";
  135. 1390 GOTO 1280
  136. 1400 L0=0
  137. 1410 L0=L0+1
  138. 1420 IF K= ASC(A$(L0*2)) THEN 1670
  139. 1430 IF L0<13 THEN 1410
  140. 1435 TAB 12
  141. 1440 PRINT "?  ";
  142. 1445 GOTO 1280
  143. 1670 Y=L0: TAB 12
  144. 1675 PRINT A$(Y*2-1,Y*2);" ";
  145. 1680 GOSUB 3000
  146. 1685 L0=0
  147. 1690 L0=L0+1
  148. 1700 IF K= ASC(D$(L0)) THEN 1730
  149. 1710 IF L0<4 THEN 1690
  150. 1720 GOTO 1435
  151. 1730 X=L0
  152. 1740 PRINT S$(X*8-7,X*8)
  153. 1750 IF C((Y-1)*4+X)=1 THEN 1790
  154. 1770 PRINT "> PLAY YOUR OWN CARDS!"
  155. 1780 GOTO 1270
  156. 1790 IF X=S1 OR Y=S2 THEN 1840
  157. 1800 IF Y=12 THEN 1840
  158. 1820 PRINT "> FOLLOW SUIT OR RANK!"
  159. 1830 GOTO 1270
  160. 1840 REM  OK
  161. 1860 IF S2=7 THEN 1980
  162. 1870 IF Y=7 THEN 1990
  163. 1880 IF Y#12 THEN 1050
  164. 1890 C((Y-1)*4+X)=-1
  165. 1900 PRINT "     CALL:    ";
  166. 1910 GOSUB 3000
  167. 1915 L0=0
  168. 1920 L0=L0+1
  169. 1930 IF K= ASC(D$(L0)) THEN 1960
  170. 1940 IF L0<4 THEN 1920
  171. 1950 GOTO 1910
  172. 1960 X=L0
  173. 1965 PRINT S$(X*8-7,X*8)
  174. 1970 GOTO 1210
  175. 1980 IF Y#7 THEN 2010
  176. 1990 F7=F7+1
  177. 2000 GOTO 1050
  178. 2010 IF F7=0 THEN 1880
  179. 2020 PRINT "> PLAY A '7' OR DRAW!!"
  180. 2030 GOTO 1270
  181. 2050 REM  PRINT
  182. 2060 PRINT A$(Y*2-1,Y*2);" ";S$(X*8-7,X*8)
  183. 2070 RETURN 
  184. 2080 REM  DRAW
  185. 2090 M=F7*3: IF M<1 THEN M=1
  186. 2095 M1=M
  187. 2100 FOR T=1 TO M1
  188. 2110 GOSUB 2200
  189. 2115 IF M#M1 THEN 2160
  190. 2120 C((Y-1)*4+X)=D
  191. 2160 NEXT T
  192. 2170 P(D)=P(D)+M
  193. 2180 F7=0
  194. 2190 RETURN 
  195. 2200 REM  DEAL
  196. 2210 IF R#0 THEN 2320
  197. 2220 PRINT "";
  198. 2230 FOR X1=1 TO 52
  199. 2250 IF C(X1)#-1 THEN 2280
  200. 2260 C(X1)=0
  201. 2270 R=R+1
  202. 2280 NEXT X1
  203. 2290 C((S2-1)*4+S1)=-1
  204. 2300 R=R-1
  205. 2305 IF R>0 THEN 2320
  206. 2310 M=M-1
  207. 2315 RETURN 
  208. 2320 X= RND (4)+1
  209. 2325 Z= RND (4)
  210. 2330 Y= RND (13)+1
  211. 2340 IF C((Y-1)*4+X)#0 THEN 2320
  212. 2350 C((Y-1)*4+X)=-1
  213. 2360 R=R-1
  214. 2370 RETURN 
  215. 2380 PRINT : PRINT "**** HAND ";D;" WINS! ****": GOSUB 4000: FOR I=1 TO 1000: NEXT I
  216. 2385 POKE 32,0: POKE 33,40: CALL -936
  217. 2400 FOR Z=1 TO N
  218. 2410 R=0
  219. 2420 IF Z=1 THEN 2450
  220. 2425 PRINT 
  221. 2430 PRINT "HAND # ";Z;" : ";
  222. 2440 GOTO 2460
  223. 2450 PRINT "YOUR HAND: ";
  224. 2460 FOR X=1 TO 4
  225. 2470 FOR Y=1 TO 13
  226. 2480 IF C((Y-1)*4+X)#Z THEN 2570
  227. 2490 GOSUB 2050:R=R+1
  228. 2500 PRINT "           ";
  229. 2510 IF Y=1 THEN R=R+2
  230. 2530 IF Y=7 THEN R=R+9
  231. 2550 IF Y=12 THEN R=R+4
  232. 2570 NEXT Y,X
  233. 2575 PRINT "-----------": PRINT "           ";
  234. 2580 IF R#1 THEN 2595
  235. 2585 PRINT " 1 POINT   "
  236. 2590 GOTO 2605
  237. 2595 IF R<10 THEN PRINT " ";
  238. 2600 PRINT R;" POINTS  "
  239. 2605 V(Z)=V(Z)+R
  240. 2620 NEXT Z
  241. 2630 POKE 32,25: POKE 33,15
  242. 2670 VTAB 1
  243. 2674 IF HNDNO>9 THEN 2680
  244. 2675 IF HNDNO=1 THEN 2681
  245. 2679 PRINT "AFTER  ";HNDNO;" HANDS": GOTO 2689
  246. 2680 PRINT "AFTER ";HNDNO;" HANDS": GOTO 2689
  247. 2681 PRINT "AFTER  ";HNDNO;"  HAND"
  248. 2689 PRINT "--------------"
  249. 2690 FOR Z=1 TO N
  250. 2700 PRINT "              "
  251. 2710 IF Z>1 THEN 2740
  252. 2720 PRINT "YOUR HAND: ";
  253. 2730 GOTO 2745
  254. 2740 PRINT "HAND # ";Z;" : ";
  255. 2745 IF V(Z)<100 THEN PRINT " ";
  256. 2750 IF V(Z)<10 THEN PRINT " ";
  257. 2755 PRINT V(Z)
  258. 2760 NEXT Z
  259. 2770 PRINT "              "
  260. 2775 VTAB 23
  261. 2780 PRINT "ANOTHER HAND ?";
  262. 2790 POKE 32,0: POKE 33,40
  263. 2800 GOSUB 3000
  264. 2810 IF K# ASC("N") THEN 350
  265. 2830 POKE 50,255
  266. 2840 CALL -936
  267. 2850 END 
  268. 3000 REM  KEYBOARD INPUT
  269. 3010 K= PEEK (-16384)
  270. 3020 IF K<128 THEN 3010
  271. 3030 POKE -16368,0
  272. 3040 RETURN 
  273. 4000 REM  LIST HAND
  274. 4010 POKE 32,28: POKE 33,12
  275. 4020 VTAB 1
  276. 4025 PRINT "HAND:#CARDS": PRINT "-----------"
  277. 4030 FOR X=1 TO N: PRINT "HAND ";X;" : ";: IF P(X)<10 THEN PRINT " ";: PRINT P(X): NEXT X: CALL -868: PRINT 
  278. 4040 IF D#1 THEN 4080: PRINT " YOUR HAND ": PRINT "-----------"
  279. 4050 FOR X=1 TO 4: FOR Y=1 TO 13: IF C((Y-1)*4+X)=1 THEN GOSUB 2050: NEXT Y,X: CALL -958
  280. 4080 POKE 32,2: POKE 33,24
  281. 4090 VTAB 24: RETURN 
  282. 5000 POKE 50,63: VTAB 1: TAB 1: FOR I=1 TO 23: PRINT "                                        ";: NEXT I: VTAB 1: RETURN 
  283. N 
  284. 5000 POKE 50,63: VTAB 1: TAB 1: FOR I=1 TO 23: PRINT "                                       ";: NEXT I: VTAB 1: RETURN 
  285. N 
  286. 5000 POKE 50,63: VTAB 1: TAB 1: FOR I=1 TO 23: PRINT "